package com.zmn.plat.services.interfaces.part;

import java.util.List;

import com.zmn.mcc.cas.model.LoginStaff;
import com.zmn.plat.model.entity.part.PartCategoryMap;
import com.zmn.plat.model.entity.part.PartCategoryMapQuery;
import com.zmn.plat.model.vo.part.PartCategoryMapVO;

/**
 * 类描述： PartCategoryMapService
 *
 * @author DaiZhichao
 * @since 2018/12/13 15:11
 */
public interface PartCategoryMapService {
    /**
     * 描述:通过 ID 查询 PartCategoryMapVO
     *
     * @param mapId
     *            ID
     * @return PartSkuPrice
     * @author DaiZhichao
     * @since 2018/10/23 16:33
     */
    PartCategoryMapVO findByKey(Integer mapId);

    /**
     * 描述:通过 query 分页查询 PartCategoryMapVO
     *
     * @param query
     *            查询对象
     * @return List<PartSkuPrice>
     * @author DaiZhichao
     * @since 2018/10/23 16:34
     */
    List<PartCategoryMapVO> listVOPageByQuery(PartCategoryMapQuery query);

    /**
     * 描述:通过 query 查询 count
     *
     * @param query
     *            查询对象
     * @return Integer
     * @author DaiZhichao
     * @since 2018/10/23 16:36
     */
    Integer countByQuery(PartCategoryMapQuery query);

    /**
     * 描述:通过 id 更新 PartCategoryMap
     *
     * @param entity
     *            PartCategoryMap
     * @param staff
     *            Staff
     * @return Integer
     * @author DaiZhichao
     * @since 2018/10/23 16:37
     */
    Integer updateByKey(PartCategoryMap entity, LoginStaff staff);

    /**
     * 描述:新增 PartCategoryMap
     *
     * @param entity
     *            PartCategoryMap
     * @param staff
     *            Staff
     * @return Integer
     * @author DaiZhichao
     * @since 2018/10/23 16:37
     */
    Integer insert(PartCategoryMap entity, LoginStaff staff);

    /**
     * 描述:删除 PartCategoryMap
     *
     * @param mapId
     *            ID
     * @return Integer
     * @author DaiZhichao
     * @since 2018/10/23 16:37
     */
    Integer deleteByKey(Integer mapId);

    /**
     * 描述:批量删除 PartCategoryMap
     *
     * @param mapIdList
     *            List<Integer>
     * @return Integer
     * @author DaiZhichao
     * @since 2018/10/23 16:37
     */
    Integer deleteByKeyBatch(List<Integer> mapIdList);

    /**
     * 描述:根据传入的 partCategoryMap 查询是否有重复的映射
     *
     * @param partCategoryMap
     *            PartCategoryMap
     * @return Boolean 是否重复
     * @author DaiZhichao
     * @since 2018/12/20 15:51
     */
    boolean findIdenticalMap(PartCategoryMap partCategoryMap);
}
